//    Openbravo POS is a point of sales application designed for touch screens.
//    Copyright (C) 2007-2009 Openbravo, S.L.
//    http://www.openbravo.com/product/pos
//
//    This file is part of Openbravo POS.
//
//    Openbravo POS is free software: you can redistribute it and/or modify
//    it under the terms of the GNU General Public License as published by
//    the Free Software Foundation, either version 3 of the License, or
//    (at your option) any later version.
//
//    Openbravo POS is distributed in the hope that it will be useful,
//    but WITHOUT ANY WARRANTY; without even the implied warranty of
//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//    GNU General Public License for more details.
//
//    You should have received a copy of the GNU General Public License
//    along with Openbravo POS.  If not, see <http://www.gnu.org/licenses/>.

package cn.ekuma.epos.qkorder;

import cn.ekuma.epos.datalogic.I_DataLogicCustomers;
import cn.ekuma.epos.datalogic.I_DataLogicERP;
import cn.ekuma.epos.datalogic.I_DataLogicReceipts;
import cn.ekuma.epos.datalogic.I_DataLogicSystem;
import cn.ekuma.epos.qkorder.orderbag.shared.JOrdersBagShared;

import com.openbravo.bean.BusinessPartner;
import com.openbravo.bean.erp.Order;
import com.openbravo.bean.infobean.CustomerInfo;
import com.openbravo.data.basic.BasicException;
import com.openbravo.pos.base.AppView;
import cn.ekuma.epos.datalogic.I_DataLogicSales;
import javax.swing.*;

public abstract class JOrdersBag extends JPanel {
     
    protected AppView m_App;     
    protected I_DataLogicERP m_dlSales;
    protected OrdersEditor m_panelOrder;
   
    
    /** Creates new form JOrdersBag */
    public JOrdersBag(AppView oApp, OrdersEditor panelOrder,I_DataLogicERP m_dlSales) {
        m_App = oApp;     
        m_panelOrder = panelOrder;
        this.m_dlSales = m_dlSales;
       
    }
    
    public abstract void activate();
    public abstract boolean deactivate();
    public abstract void deleteOrder();
    public abstract void newOrder();
    public abstract void newOrder(CustomerInfo obj);
    
    public abstract void  setOrderEditAble(boolean editAble);
     
    public  abstract JComponent getBagComponent();
    public  abstract JComponent getNullComponent();
    
    public abstract void setActiveOrder(Order order,boolean isEditAble) throws BasicException;
    
    public static JOrdersBag createOrdersBag(String sName, AppView app, OrdersEditor panelOrder,I_DataLogicERP m_dlSales,I_DataLogicReceipts dlReceipts,I_DataLogicCustomers dlCustomer,I_DataLogicSystem dlSystem) {

        return new JOrdersBagShared(app, panelOrder, m_dlSales, dlReceipts, dlCustomer, dlSystem);  
    }

    public OrdersEditor getOrdersEditor() {
        return m_panelOrder;
    }

    public AppView getM_App() {
        return m_App;
    }

    public I_DataLogicSales getM_dlSales() {
        return m_dlSales;
    }

	public abstract void flushOrder();
}
